package org.firefly.db.meta;

import java.sql.SQLException;
import java.util.List;

public interface IDBMeta {

	/**
	 * 获得表结构信息
	 * @param needColumnMetas 是否需要列结构信息
	 * @param needPKMetas 是否需要主键信息
	 * @param needFKMetas 是否需要外键信息
	 * @return
	 * @throws SQLException
	 */
	public List<TableMeta> getTableMetas(boolean needColumnMetas,boolean needPKMetas,boolean needFKMetas,String[] tables) throws SQLException;

	/**
	 * 获得列结构信息
	 * @param tableName
	 * @return
	 * @throws SQLException
	 */
	public List<ColumnMeta> getColumnMetas(String tableName) throws SQLException;

	/**
	 * 获得主键信息
	 * @param tableName
	 * @return
	 * @throws SQLException
	 */
	public PK getPKMetas(String tableName) throws SQLException;

	/**
	 * 获得外键信息
	 * @param tableName
	 * @return
	 * @throws SQLException
	 */
	public List<FK> getFKMetas(String tableName) throws SQLException;
	
}
